using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Input.Touch;
using Microsoft.Xna.Framework.Media;
using G4KFramework.Inputs;

namespace G4KFramework
{
    public class GScreen
    {    
        protected EventHandler _screenEvent;
        protected GGameInput _gameInput;
        protected static Game _game;
        protected static SpriteBatch _spriteBatch;
        protected static ContentManager _content;

        public GScreen(Game game, EventHandler screenEvent)
        {
            _game = game;
            _screenEvent = screenEvent;
            _content = game.Content;

            _spriteBatch = new SpriteBatch(_game.GraphicsDevice);
            _gameInput = new GGameInput();
        }

        public virtual void Activate() { }        

        protected virtual void SetupInputs() { }

        protected virtual void LoadScreenContent(ContentManager content) { }

        public virtual void UnloadScreenContent() { }

        public void SaveState()
        {
            SaveScreenState();
        }

        protected virtual void SaveScreenState() { }        

        public virtual void Update(GameTime gameTime) { }

        public virtual void Draw() { }
    }
}
